Generally, an application that attains a GUI (Graphical User Interface) has a GUI section that conducts interactions with a user, and a logic section that executes a process after receiving an order from the user. There are cases in which the GUI section of the application is changed in response to a scene in which the application is used, or in response to the user using the application. However, for some applications that have a specific architecture, it is a problem that makes it necessary to change not only the GUI section, but also both the GUI section and the logic section (i.e. the whole application).
A MVC (Model-View-Controller) pattern is known as architecture to solve such a problem. If an application is designed in accordance with the MVC pattern, a GUI provided by the application can be changed easily only by changing the GUI section (View and Controller). As described above, an application design method that applies the MVC pattern has a merit that allows using the logic section (Model) without changes when the GUI is changed. Details of MVC are described, for example, in non-patent reference 1.
A specific example of an application that provides the GUI is explained in the following.
A web browser, represented by Internet Explorer (registered trademark) from Microsoft Corporation, for example, is generally used as an application to display a content of the Internet. A screen display performed by a web browser is often realized by applying the MVC pattern. Specifically, of the application of the web browser, a section for displaying GUI for the user is attained as a GUI section, and an execution function by a server that is accessed by the web browser is realized as a logic section. In this case, GUI on the web browser can be changed, with change made only to the GUI section, not to the logic section.
A GUI section of a standard web browser is often realized by a GUI content (a content providing GUI) such as HTML (Hyper Text Markup Language), and a logic section is often realized by a program. Among the GUI contents with potential of being displayed by web browsers, beside HTML documents that are normally supported by web browsers, there are GUI contents that possess a richer expressiveness than HTML documents. In order to display various types of GUI contents on an existing web browser, other than those that are not normally supported and other than a HTML document; it is generally necessary to plug-in a GUI content reproduction section (e.g. a program) prepared for each type of GUI content to an existing web browser.
Specific examples of the GUI content other than the HTML document are; Macromedia Flash (registered trademark), SVG (Scalable Vector Graphics) standardized by W3C (World Wide Web Consortium) which is a consortium that develops and publishes internet standards, and OpenGL (registered trademark) which is the standard specification for 3-D graphics. These GUI contents are widely used by the public as a GUI section displayed on a web browser.
However, in recent years an attempt has been made to use such GUI contents described above not only as a content browsed on a web browser but also as a content for providing GUI for built-in devices.
FIG. 8 is a diagram schematically showing one example of a GUI content. A GUI content 1301 is a content with a combination of audios and animations such as Vector Graphics and the GUI content 1301 is generated by a GUI content generating device or a GUI content generating program.
The GUI content 1301 includes a plurality of scenes 1302a to 1302i. Furthermore, each of the scenes 1302a to 1302i includes a plurality of segments divided in a predetermined time interval. In the example in FIG. 8, the scene 1302a includes five segments 1303a to 1303e. Allocated to each scene or to each segment are, orders for a process to change a scene to another scene during reproduction of the GUI content 1301, a process or an object (display-content) to change a segment to another segment.
In order to make it possible to reproduce the GUI content 1301 described in FIG. 8, a GUI content reproduction device is used which has a GUI content reproduction section that corresponds to the GUI content to be reproduced. In addition to a function that reproduces a GUI content given from an application or the like, the GUI content reproduction device has a function of dynamically generating a GUI content reproduction section and a function of discarding the GUI content reproduction section. [Non-Patent Document 1] “Design Patterns for Object-Oriented Software Development” by Wolfgang Pree, Addison-Wesley Publishing Company, 1995.]
Generally in a instrument that provides GUI, there exist an event generated in accordance with a user operation by input devices such as an operation key or a mouse, and an event generated by a logic section. For example, in a case in which a terminal device is a mobile phone, the events generated by the logic section are: notifications of incoming phone calls, incoming mail and low battery capacity; alarms; display of contents processed by a scheduler; and the like. Hereinafter, an event used to convey the user order to the GUI content is referred to as “user ordered event”, and an event used to convey the logic order to the GUI content is referred to as “logic ordered event”.
The user ordered event and the logic ordered event are generated in a spontaneous timing and conveyed to the GUI content. Therefore, there are no problems in cases when both events are generated in different timings, but there is a possibility in which normal operation becomes interrupted in cases when both events are generated simultaneously and compete with each other. Hence, the GUI content reproduction section needs to be modified such that there are no problems even when both events compete with each other.
However, in most cases source codes of a program necessary to modify the GUI-content reproduction section are not disclosed, in reality making it difficult to modify the GUI content reproduction section. Therefore, when the GUI content reproduction section cannot be modified, one possible method is to allocate the logic ordered event to a part of a user ordered event operation, in order to mimic and utilize the part as the logic ordered event. FIG. 9 is a diagram of an example of a conventional content reproduction system's composition that uses this method.
However, even in this method, since the logic ordered event is essentially a part of the user ordered event, when the user ordered event and the logic ordered event are generated simultaneously, normal operation of the GUI content reproduction section may be interrupted as a result of a plurality of different events continuously notified to the GUI content reproduction section.
For example, there is a problem that a mouse cursor does not get displayed in accordance with the user's intent (a mouse cursor moves to a logic event button located outside of a screen display area, resulting in a state without the mouse cursor being displayed on the screen), when the logic ordered event is generated during generation of the user ordered event. Additionally, there is a problem that a process triggered by the logic ordered event becomes unstable (an executed process stops when a mouse cursor, located on a logic event button outside of a screen display area, is moved by a user operation) when the user ordered event is generated during generation of the logic ordered event.